package com.moli.iov.base.remote;

import com.moli.iov.base.model.dto.req.UpdateVehicleAttentionReqDto;
import com.moli.iov.base.model.dto.req.VehicleAttentionReqDto;
import com.moli.iov.base.model.dto.req.VehicleFollowGroupReqDto;
import com.moli.iov.rest.RestResponse;

/**
 *
 * Vehicle follow group remote service.
 *
 * @author OAK
 * @since 2020/02/24 13:53 PM.
 * @version 3.1.0
 */
public interface IVehicleFollowGroupRemoteService {

  /**
   * According to pass vehicle follow group request data transfer object for persist a vehicle follow group.
   * @param vehicleFollowGroupReqDto Vehicle follow group request data transfer object
   * @return Restful for response result.
   */
   RestResponse save(VehicleFollowGroupReqDto vehicleFollowGroupReqDto);

  /**
   * According to pass vehicle follow group request data transfer object for modified a vehicle follow group.
   * @param vehicleFollowGroupReqDto Vehicle follow group request data transfer object
   * @return Restful for response result.
   */
   RestResponse modified(UpdateVehicleAttentionReqDto vehicleFollowGroupReqDto);

  /**
   * According to pass vehicle follow group request data transfer object for batch processor persist a vehicle follow group.
   * @param vehicleFollowGroupReqDto Vehicle follow group request data transfer object
   * @return Restful for response result.
   */
  RestResponse batch(VehicleFollowGroupReqDto vehicleFollowGroupReqDto);

  /**
   * According to pass vehicle follow group request data transfer object for delete a vehicle follow group.
   * @param vehicleFollowGroupReqDto Vehicle follow group request data transfer object
   * @return Restful for response result.
   */
  RestResponse delete(VehicleFollowGroupReqDto vehicleFollowGroupReqDto);

}
